<!DOCTYPE html>
<html lang="en">
	<head>
		<meta charset="UTF-8" />
		<meta http-equiv="X-UA-Compatible" content="IE=edge" />
		<meta name="viewport" content="width=device-width, initial-scale=1.0" />
		<title>Queue</title>
	</head>
	<body>
		<script>
			// 封装队列类
			function Quene() {
				// 属性
				this.items = [];

				// 方法
				// 1. 将元素加入到队列中
				Quene.prototype.enqueue = function (element) {
					this.items.push(element);
				};

				// 2. 从队列中删除前端元素
				Quene.prototype.delqueue = function () {
					return this.items.shift();
				};

				// 3. 查看前端元素
				Quene.prototype.front = function () {
					return this.items[0];
				};

				// 4. 查看队列是否为空
				Quene.prototype.isEmpty = function () {
					return this.items.length === 0;
				};

				// 5. 查看队列中元素的个数
				Quene.prototype.size = function () {
					return this.items.length;
				};

				// 6. toString 方法
				Quene.prototype.toString = function () {
					let resultString = '';
					for (let i = 0; i < queue.size(); i++) {
						resultString += this.items[i] + ' ';
					}
					return resultString;
				};
			}

			// 使用队列
			let queue = new Quene();

			queue.enqueue('abc');
			queue.enqueue('cba');
			queue.enqueue('nba');
			queue.enqueue('mba');
			console.log(queue);

			queue.delqueue();
			console.log(queue);

			console.log(queue.front());

			console.log(queue.isEmpty());

			console.log(queue.size());

			console.log(queue.toString());
		</script>
	</body>
</html>
